import datetime
import os
import sys
# 系统级截图依赖
import pyautogui
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager

# 创建一个浏览器对象
class Driver:
    driver = ""
    def __init__(self):
        options = webdriver.ChromeOptions()
        # 在本地环境变量中查找驱动，因此不用install
        # self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
        self.driver = webdriver.Chrome(options=options)

    def getScreeShot(self):
        # 创建屏幕截图名称
        driname = datetime.datetime.now().strftime("%Y-%m-%d")
        # 创建目录-判断是否存在目录
        if not os.path.exists("../images/"+driname):
            os.mkdir("../images/"+driname)
        # 进行页面级别屏幕截图操作
        # sys._getframe().f_back.f_code.co_name 获取当前调用方法的名称
        filename = sys._getframe().f_back.f_code.co_name + "-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S")+".png"
        self.driver.save_screenshot("../images/"+driname+"/"+filename)

    def getAlertScreenshot(self):
        # 创建屏幕截图名称
        driname = datetime.datetime.now().strftime("%Y-%m-%d")
        # 创建目录-判断是否存在目录
        if not os.path.exists("../images/"+driname):
            os.mkdir("../images/"+driname)
        # 进行系统级别屏幕截图操作
        filename = sys._getframe().f_back.f_code.co_name + "-" + datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S")+".png"
        pyautogui.screenshot().save("../images/"+driname+"/"+filename)

    def driverQuit(self):
        self.driver.quit()

# 单例模式-只生成一个
BlogDriver = Driver()